import java.io.*;
import java.lang.*;

public class Galaxia{
	public static void main(String[] args){

		final int agua_inicio = 6;
		final String nombre = "Space Cowboy";
		Planeta listaPlanetas[];
		Distancia distancia_a;
		Distancia distancia_b;
		Nave nave_a;
		Nave nave_b;
		int numPlanetas;
		double distTotal = 0;
		int nTripulantes_a = 0;
		int nTripulantes_b = 0;
		numPlanetas=obtenerInt("Dame el numero de Planetas");
		nTripulantes_a = obtenerInt("Dame el numero de Tripulantes de Nave (a)");
		nTripulantes_b = obtenerInt("Dame el numero de Tripulantes de Nave (b)");
		if (nTripulantes_a > 3)
			nTripulantes_a = 3;
		}
		if (nTripulantes_b > 3)
			nTripulantes_b = 3;
		}
		mostrarInt("Numero de planetas: ",numPlanetas);
		mostrarInt("Numero de tripulantes de la nave (a): ", nTripulantes_a);
		mostrarInt("Numero de tripulantes de la nave (b): ", nTripulantes_b);
		nave_a = new Nave(agua_inicio, nTripulantes_a, nombre); 
		nave_b = new Nave(agua_inicio, nTripulantes_b, nombre); 
		mostrarInt ("Cantidad de agua en la nave (a): ", agua_inicio);
		mostrarInt ("Cantidad de agua en la nave (b): ", agua_inicio);
		numPlanetas++;
		listaPlanetas = new Planeta[numPlanetas];  // para contener al planeta origen (0,0,0)
		listaPlanetas[0] = new Planeta(true);			
		for(int i = 1; i < numPlanetas; i++){
			listaPlanetas[i] = new Planeta();			
		}
		for(int i = 0; i < numPlanetas-1; i++){
			distancia_a = new Distancia(listaPlanetas[i].getCoord(),listaPlanetas[i+1].getCoord());
			distTotal = distTotal + distancia_a.getDist();
		}
		System.out.println("Dist total: "+distTotal);
	
		// Empieza el juego
		System.out.println ("Numero de planetas: " +numPlanetas);
		boolean hasPerdido = false;
		for (int i = 0; i < numPlanetas -1 ; i++){
			distancia_b = new Distancia(listaPlanetas[i].getCoord(), listaPlanetas[i+1].getCoord());
			nave_a.actualizarNave(listaPlanetas[i], distancia_b, distTotal, numPlanetas);
			nave_b.actualizarNave(listaPlanetas[i], distancia_b, distTotal, numPlanetas);
			if (listaPlanetas[i].getTieneAgua()){
				System.out.println ("###########################");
	 			System.out.println ("Estas en el planeta: "+ listaPlanetas[i].getNombrePlaneta());
				System.out.println (listaPlanetas[i].getNombrePlaneta()+" tiene agua.");
				System.out.println ("Este planeta tiene: " + listaPlanetas[i].getAgua() +" agua.");
				System.out.println ("La nave tiene: " + nave.getAgua()+" agua.");
			} else {
				System.out.println ("###########################");
				System.out.println ("Estas en el planeta: "+ listaPlanetas[i].getNombrePlaneta());
				System.out.println (listaPlanetas[i].getNombrePlaneta()+" no tiene agua.");
				System.out.println ("Despues de eliminar el agua");
				System.out.println ("La nave tiene: " + nave.getAgua()+" agua.");
			}
			if (nave.getAgua() < nTripulantes){
				System.out.println ("Has perdido el juego");
				System.out.println ("Cantidad de agua: " + nave.getAgua());
				System.out.println ("Cantidad de tripulantes: " +nTripulantes);
				hasPerdido = true;
				break;
			}
		}
		if (!hasPerdido){
			System.out.println ("Has ganado el juego...");
			System.out.println ("Enhorabuena....");
		}
	}

	public static int obtenerInt(String s){
		int n = 0;
		try {
			BufferedReader stdin = (new BufferedReader (new InputStreamReader (System.in)));

			System.out.println(s);
			String input = stdin.readLine();
			n = Integer.parseInt(input);
		}
		catch(IOException e){};
		return n;			
	}
	public static void mostrarInt(String s, int n){

		System.out.println(s+n);
	}
}
